package game.joueur;

import game.joueur.jeton.AucunJetonUtilisableException;
import game.de.De;
import game.de.DeImpl;
import game.joueur.jeton.Jeton;
import game.joueur.jeton.CollectionJeton;
import game.plateau.Plateau;
import game.plateau.cartes.CarteOccupeeException;
import game.stategie.Strategie;
import game.support.Cochon;
import game.support.DernierEmplacementAtteintException;
import java.util.Iterator;

public class JoueurImpl implements Joueur {
    private CollectionCochon cochons = new CollectionCochon();
    private CollectionJeton jetons = new CollectionJeton();;

    public void utiliserJeton(Plateau plateau) throws AucunJetonUtilisableException, CarteOccupeeException {
        Jeton jeton = jetons.recupererJetonUtilisable();
        plateau.deplacerCarte();
        jeton.utiliser();
    }

    public void jouer(Plateau plateau, Cochon cochon) throws DernierEmplacementAtteintException {
        De de = new DeImpl();
        Boolean play = true;
        Strategie strategie = null;

        while(play) {
            strategie = de.roll().strategie();
            play = strategie.evaluer(plateau, cochon);
        }
    }

    public int nombreCochon() { return cochons.size(); }

    public void addCochon(Cochon cochon) { cochons.add(cochon); }

    public void removeCochon(Cochon cochon) { cochons.remove(cochon); }
    
    public int nombreJeton() { return jetons.size(); }

    public void addJeton(Jeton jeton) { jetons.add(jeton); }

    public Iterator<Cochon> iteratorCochon() { return cochons.iterator(); }
}
